using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using Common.Utilities.Dispatcher;


namespace Workflows.Components.FileManipulation
{
    /// <summary>
    /// 
    /// </summary>
    [Serializable]
    public class CompressionInstruction:InstructionBase
    {
        #region props
        private string _SrcPath;
        /// <summary></summary>
        public string SrcPath
        {
            get { return _SrcPath; }
            set { _SrcPath = value; }
        }

        private string _TgtPath;
        /// <summary></summary>
        public string TgtPath
        {
            get { return _TgtPath; }
            set { _TgtPath = value; }
        }

        private CompressionActionType _Action;
        /// <summary></summary>
        public CompressionActionType Action
        {
            get { return _Action; }
            set { _Action = value; }
        }

        private string _WinzipProgramFilePath;
        /// <summary></summary>
        public string WinzipProgramFilePath
        {
            get
            {
                return this._WinzipProgramFilePath;
            }
            set
            {
                this._WinzipProgramFilePath = value;
            }
        }

        private string _Password;
        /// <summary></summary>
        public string Password
        {
            get
            {
                return this._Password;
            }
            set
            {
                this._Password = value;
            }
        }
        #endregion
        /// <summary></summary>
        public CompressionInstruction():base(Guid.Empty,Guid.Empty)
        {
            this._SrcPath = string.Empty;
            this._TgtPath = string.Empty;
            this._Action = CompressionActionType.WinzipCompress;
        }
        /// <summary></summary>
        public CompressionInstruction(Guid componentID, Guid jobTicketID, string srcPath, string tgtPath, CompressionActionType actionType) : base(componentID, jobTicketID)
        {
            this._SrcPath = srcPath;
            this._TgtPath = tgtPath;
            this._Action = actionType;
        }

        public override XmlNode Serialize(ref XmlDocument xDoc, ref XmlNode parentNode)
        {
            throw new NotImplementedException();
        }

        public override InstructionBase Instantiate(XmlNode xNode)
        {
            throw new NotImplementedException();
        }
    }
}
